#ifndef CT_VERTEX_INFO_H
#define CT_VERTEX_INFO_H

#include "Vertex_Info.h"

//
// Attributes for one vertex in the cluster tree.
// Each vertex knows:
// Who its children and parent are
//  (not stored here, but in the cluster tree graph.)
// A Cluster of items (in a separate class).
//
// So very little is stored here.
class CT_Vertex_Info : public Vertex_Info {
public:
    CT_Vertex_Info() {}
    CT_Vertex_Info(int ID, double distance);
    CT_Vertex_Info(const CT_Vertex_Info& vi)
        :cluster_ID(vi.cluster_ID),
         leaf_distance(vi.leaf_distance) {
    }

    std::ostream& print(std::ostream& os) const;
    bool match(Parser& parser);

    int cluster_ID;
    double leaf_distance;
};

std::ostream& operator<<( std::ostream& os,
                          const CT_Vertex_Info& v );
#endif
